package com.cgy.utils.jmx;

import com.cgy.utils.jmx.constant.Jvm;
import com.cgy.utils.jmx.constant.JvmInfo;

import java.util.List;
import java.util.Map;

/**
 * @author CHTK
 */
public interface IJvmInfo<T> {

    /**
     * 获取状态
     * @return
     */
    public JvmInfo status();

    /**
     * 字段
     * @return
     */
    public Map<String, String> fields();

    /**
     *  描述
     * @return
     */
    public Map<String, String> describes();
    /**
     * 值
     * @return
     */
    public Map<String, T> values();
    /**
     * 值
     * @return
     */
    public List<Jvm> valueAndDescribe();

    /**
     * 获取状态
     * @param key
     * @return
     */
    default public T getStatus(final String key) {
        return null;
    }
}
